Updated: 2020-09-07 18:25:52 PDT

Original version created 2020-05-03. See below for revision history

Intro


The spread of the SARS-COV-19 viral disease defies description in terms of a single statistic. To be informed about personal risk we need to know more than how many people have been sick at a national level or even state level, we need information about how many people are currently sick in our communicty and how the number of sick people is changing is changing at a state and even county level. It can be hard to find this information.

This analysis seeks to fill partially that gap. It includes:
1. Several national pictures of disease trends to enable a “large pattern” view of how disease has and is evolving a on country-wide scale.
2. A per capita analysis of disease spread.
3. A more granular analysis of regions, states, and counties to shed light on local disease pattern evolution.
4. Details of the time evolution of growth statistics.


This computed document is constantly evolving, so please “refresh” for the latest updates. If you have suggestions or comments please reach out on twitter @WinstonOnData or facebook.

National Statistics

Total & Active Cases, and Deaths

These trend charts show the national disease statistics. The raw data are shown. since these showdaily trends that are systematically related ot the M-F work week, possibly due to reporting delays, numbers showsn

Mortality and \(R_e\)

Distribution of \(R_e\) Values

There is a wide dirstubtion of \(R_e\) across regions and counties. The distributions in the graph below looks roughly symmetrical because the x-scale is logarithmic.

National Maps

The key indicator for disease forcasting is the Effective Reproduction Rate \(R_e\), which is a measure of how many new cases each existing case of disease creates.

When a lot of people are sick in a population without mass-immunity you want \(R_e \ll 1\) or \(log_2\)(\(R_e\)) < 0) to acheive negative disease growth.

After achieving negative growth, the next phase of recovery is maintaining consistently lower levels of disease to a level where disease cases can be micro-managed. There’s no clear agreement on how few that is, but I’ve seen estimates as low as 500 cases per day across the US (about 0.16 cases per 100k population).

An estimate of the disease “toll” is the number of officially tallied deaths. It is fully agreed this vastly underestimates that actual cost of the disease. Death counts are almost certainly underestimated and this does not reflect any long lasting health effects on those who recover.

State Level Data

Pandemic Totals

Current Status of Active Disease

How many cases are there per day, per capita, in each state? You can see the number of current cases varies widely. I also include a forecast of the number of cases about a week from now given current trends. Most states currently show improvement.

County Level Data

While the State-Level Data Tell as remarkable story, it is also interesting to look at County-level data

County Level Data


state R_e cases daily_cases
Wisconsin 1.80 86782 2166
New Hampshire 1.35 7439 33
Illinois 1.30 250888 2844
Delaware 1.24 17687 104
North Dakota 1.23 13563 339
Arizona 1.22 205933 687
West Virginia 1.22 11430 206
Missouri 1.19 84327 1505
Maryland 1.16 112618 680
Arkansas 1.15 64150 705
Oklahoma 1.13 63736 896
New York 1.12 444260 817
Pennsylvania 1.11 144046 853
South Carolina 1.10 125136 1074
Montana 1.09 8245 147
Virginia 1.09 99631 805
Kentucky 1.08 56658 883
New Jersey 1.08 195564 364
Colorado 1.06 59593 315
Utah 1.06 54685 424
Indiana 1.05 101990 1014
Minnesota 1.05 80447 851
Ohio 1.05 130795 1234
Louisiana 1.04 152515 741
Maine 1.04 4692 28
Tennessee 1.04 161005 1551
Oregon 1.03 28046 231
Wyoming 1.02 4031 33
Florida 1.00 645886 3386
Mississippi 1.00 87038 642
Georgia 0.99 264519 2050
Nevada 0.99 71616 422
Massachusetts 0.97 127604 309
New Mexico 0.97 26136 124
California 0.95 740709 4630
North Carolina 0.94 177472 1499
Texas 0.94 667114 4200
Washington 0.94 80412 442
Idaho 0.93 34120 270
Michigan 0.93 117101 683
South Dakota 0.93 14923 273
Iowa 0.89 70364 878
Alabama 0.84 132532 1019
Kansas 0.83 46412 489
Nebraska 0.83 35930 250
Rhode Island 0.57 20417 48
Connecticut 0.54 53338 69
Vermont 0.51 1637 4

Regional Snapshots

Regional snapshots reveal the highly nuanced behavior of disease spread. Each snaphot includes multiple states and selected counties.

How to read the charts

There are four components:
1. State Maps show the number of active cases and with the Reproduction rate encoded as color.
2. State Graphs State-wide trend graphs.
3. Severity Ranking These is a table of counties where the highest number of new cases are expected. Severity is a compounded function \(f(R, cases(t))\). This is useful for finding new (often unexpected) “hot spots.” Added per capita rates.
4. County Graphs encode the R-value in the active number of cases. R is the Reproduction Rate.

(NOTE: R < 1 implies a shrinking number of active cases, R > 1 implies a growing number of active cases. For R = 1, active cases are stable. ).


Washington and Oregon

## Warning: Removed 1 rows containing missing values (geom_col).

California

Four Corners

Mid-Atlantic

Deep South

FL and GA

Texas & Oklahoma

Michigan & Wisconsin

Minnesota, North Dakota, and South Dakota

Connecticut, Massachusetts, and Rhode Island

New York

Vermont, New Hampshire, and Maine

Carolinas

North-Rockies

Midwest

Tennessee and Kentucky

Missouri and Arkansas

Conclusions

It’s in control some places, but not all places. And many places are completely out-of-control.

Stay Safe!
Be Diligent!
…and PLEASE WEAR A MASK



Built with R Version 4.0.2
This document took 308.3 seconds to compute.
2020-09-07 18:31:00

version history

Today is 2020-09-07.
110 days ago: span plots to multiple states.
102 days ago: include \(R_e\) computation.
99 days ago: created color coding for \(R_e\) plots.
94 days ago: Reduced \(t_d\) from 14 to 12 days. 14 was the upper range of what most people are using. Wanted slightly higher bandwidth.
94 days ago: “persistence” time evolution.
87 days ago: “In control” mapping.
87 days ago: “Severity” tables to county analysis. Severity is computed from the number of new cases expected at current \(R_e\) for 6 days in the future. It does not trend \(R_e\), which could be a future enhancement.
79 days ago: Added census API functionality to compute per capita infection rates. Reduced spline spar = 0.65.
74 days ago: Added Per Capita US Map.
72 days ago: Deprecated national map. can be found here.
68 days ago: added state “Hot 10” analysis.
63 days ago: cleaned up county analysis to show cases and actual data. Moved “Hot 10” analysis to separate web page. Moved “Hot 10” here.
61 days ago: added per capita disease and mortaility to state-level analysis.
49 days ago: changed to county boundaries on national map for per capita disease.
44 days ago: corrected factor of two error in death trend data.
40 days ago: removed “contained and uncontained” analysis, replacing it with county level control map.
35 days ago: added county level “baseline control” and \(R_e\) maps.
31 days ago: fixed normalization error on total disease stats plot.
24 days ago: Corrected some text matching in generating county level plots of \(R_e\).
18 days ago: adapted knot spacing for spline.
4 days ago:using separate knot spacing for spline fits of deaths and cases.
2 days ago: MAJOR UPDATE. Moved things around. Added per capita severity map.

Appendix: Methods

Disease data are sourced from the NYTimes Github Repo. Population data are sourced from the US Census census.gov

Case growth is assumed to follow a linear-partial differential equation. This type of model is useful in populations where there is still very low immunity and high susceptibility.

\[\frac{\partial}{\partial t} cases(t, t_d) = a \times cases(t, t_d) \] \(cases(t)\) is the number of active cases at \(t\) dependent on recent history, \(t_d\). The constant \(a\) and has units of \(time^{-1}\) and is typically computed on a daily basis

Solution results are often expressed in terms of the Effective Reproduction Rate \(R_e\), where \[a \space = \space ln(R_e).\]

\(R_e\) has a simple interpretation; when \(R_e \space > \space 1\) the number of \(cases(t)\) increases (exponentially) while when \(R_e \space < \space 1\) the number of \(cases(t)\) decreases.

Practically, computing \(a\) can be extremely complicated, depending on how functionally it is related to history \(t_d\). And guessing functional forms can be as much art as science. To avoid that, let’s keep things simple…

Assuming a straight-forward flat time of latent infection \(t_d\) = 12 days, with \[f(t) = \int_{t - t_d}^{t}cases(t')\; dt' ,\] \(R_e\) reduces to a simple computation

\[R_e(t) = \frac{cases(t)}{\int_{t - t_d}^{t}cases(t')\; dt'} \times t_d .\]

Typical range of \(t_d\) range \(7 \geq t_d \geq 14\). The only other numerical treatment is, in order to reduce noise the data, I smooth case data with a reticulated spline to compute derivatives.


DISCLAIMER: Results are for entertainment purposes only. Please consult local authorities for official data and forecasts.